/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.brain.sgc.manager;

import com.brain.core.exception.DAOException;
import com.brain.core.hibernate.dao.DAOGenerico;
import com.brain.core.manager.ComunManager;
import com.brain.core.manager.RecursosManager;
import com.brain.sgc.dto.MofAutoridadOrganizaDto;
import com.brain.sgc.view.util.ConstantesSgc;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;

/**
 *
 * @author Christian
 */
@Service
public class MofAutoridadOrganizaManager extends ComunManager<MofAutoridadOrganizaDto> implements Serializable {
    @Resource
    private DAOGenerico<MofAutoridadOrganizaDto> springHibernateDao;
    private static Logger logger = Logger.getLogger(MofAutoridadOrganizaManager.class);
    @Resource
    private RecursosManager recursosManager;
    
    public MofAutoridadOrganizaDto inicializar() {
        MofAutoridadOrganizaDto MofAutoridadOrganizaDto = new MofAutoridadOrganizaDto();
        return MofAutoridadOrganizaDto;
    }
    
    public List<MofAutoridadOrganizaDto> obtenerMofAutoridadOrganizaPorTablaTipo (MofAutoridadOrganizaDto dto) throws DAOException {
        List<Object> listaParametros = new ArrayList<Object>();
        String hqsql = "select e from MofAutoridadOrganizaDto as e where ";
        hqsql += " e.tabla = " +  dto.getTabla();
        hqsql += " and e.tipo = " +  dto.getTipo();
        hqsql += " and e.puestoDto.id = " +  dto.getPuestoDto().getId();
        return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
    }
   
     public List<MofAutoridadOrganizaDto> obtenerCantidadLineaAutoridadDependencia (MofAutoridadOrganizaDto dto) throws DAOException {
        List<Object> listaParametros = new ArrayList<Object>();
        String hqsql = "select p from MofAutoridadOrganizaDto as p where ";
        hqsql += " p.puestoAuxDto.id = ?";
        listaParametros.add(dto.getPuestoAuxDto().getId());
        hqsql += " and (p.tipo = ?";
        listaParametros.add(ConstantesSgc.ValoresConstantes.PUESTO_TIPO_LINEA_AUTORIDAD_RESPONSABILIDAD_DEPENDENCIA_VALOR);
        hqsql += " and p.tabla = ?";
        listaParametros.add(ConstantesSgc.ValoresConstantes.PUESTO_TABLA_LINEA_AUTORIDAD_RESPONSABILIDAD_VALOR);
        hqsql += " and p.puestoDto.id = ?)";
        listaParametros.add(dto.getPuestoDto().getId());
        return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
    }
     public List<MofAutoridadOrganizaDto> obtenerCantidadLineaAutoridadSupervision (MofAutoridadOrganizaDto dto) throws DAOException {
        List<Object> listaParametros = new ArrayList<Object>();
        String hqsql = "select p from MofAutoridadOrganizaDto as p where ";
        hqsql += " p.puestoAuxDto.id = ?";
        listaParametros.add(dto.getPuestoAuxDto().getId());
        hqsql += " and (p.tipo = ?";
        listaParametros.add(ConstantesSgc.ValoresConstantes.PUESTO_TIPO_LINEA_AUTORIDAD_RESPONSABILIDAD_SUPERVISION_VALOR);
        hqsql += " and p.tabla = ?";
        listaParametros.add(ConstantesSgc.ValoresConstantes.PUESTO_TABLA_LINEA_AUTORIDAD_RESPONSABILIDAD_VALOR);
        hqsql += " and p.puestoDto.id = ?)";
        listaParametros.add(dto.getPuestoDto().getId());
        return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
    }
     public List<MofAutoridadOrganizaDto> obtenerCantidadRelacionesOrgInterna (MofAutoridadOrganizaDto dto) throws DAOException {
        List<Object> listaParametros = new ArrayList<Object>();
        String hqsql = "select p from MofAutoridadOrganizaDto as p where ";
        hqsql += " p.puestoAuxDto.id = ?";
        listaParametros.add(dto.getPuestoAuxDto().getId());
        hqsql += " and (p.tipo = ?";
        listaParametros.add(ConstantesSgc.ValoresConstantes.PUESTO_TIPO_RELACIONES_ORGANIZACIONALES_INTERNAS_VALOR);
        hqsql += " and p.tabla = ?";
        listaParametros.add(ConstantesSgc.ValoresConstantes.PUESTO_TABLA_RELACIONES_ORGANIZACIONALES_VALOR);
        hqsql += " and p.puestoDto.id = ?)";
        listaParametros.add(dto.getPuestoDto().getId());
        return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
    }
    
}
